The present invention relates to computer systems, and particularly to small computer systems which can be connected to a telephone line.
The present invention provides a computer system which can be completely reprogrammed by telephone. This permits debugging, or software updating, to be performed by telephone. Since low-level access is possible, this system can be used for data-collection stations, for application-specific systems generally, or for other systems in which a high-level software environment is not present.
Some presently available software packages permit a computer to be accessed, through a modem, in "slave" mode. In this mode, the user can issue commands, through the process which is managing the communications link, to be passed on to the main operating system (software). However, since this connection occurs at a fairly high level, it is not suitable for low-level manipulation of a microprocessor's programming. This means that access of this kind cannot reliably be used for troubleshooting.
It should also be noted that, in presently available modem systems, an "escape sequence" is commonly used to identify modem commands within a stream of data. That is, in common modem systems for use with desktop computers, the computer will send commands directed to the modem (such as "hang up") on the same line as the data which is to be sent through the modem to a remote computer. To prevent confusion, the "escape sequence" is used to indicate that the modem must interpret (rather than transmit) the following bits. For example, one commonly used escape sequence is three plus signs (+++), preceded and followed by a certain minimum period of silence.
The ability to perform "teleservicing" can be a significant element of a userfriendly computer system. A tremendous amount of effort has been devoted to providing "friendly," easy-to-use computer systems and software. However, one of the weak points in this effort is that, when problems occur, the inexperienced user may rapidly become bewildered and unhappy, regardless of how friendly the system is when it is working. Moreover, physical transportation of computer systems is a large burden on the time of users and/or technicians. Thus, it would be a major forward step if an experienced repair technician could access a customer's system by telephone, even if a hardware failure had occurred, and reliably read the configuration and state of the system and software, and change stored programs if needed.
This ability is also advantageous in many large-scale system design contexts. For example, if a systems analyst is formulating solutions to a problem which requires periodic data collection from many points, he may consider using human monitors; or using physical recorders (such as strip charts) with analog sensors; or using simple microprocessor or microcontroller systems to collect data in digital records; or use higher-level microcomputer systems which can collect data, reduce it, and transmit via modem on demand. In considering system architectures of this scale, one of the key parameters is how "smart" the remote station is: can it implement a sophisticated algorithm to control sensors? Can it monitor data storage conditions? Can it recognize exception conditions? Another key parameter is robustness: a "smart" remote station which fails can be much worse than a simpler station, since the extraordinary measures which may be needed to retrieve the data may disrupt the efficiency and economy of data flow overall. From this point of view, it may be seen that the present invention provides a range of options which would not otherwise be available.
For example, the present invention can be particularly advantageous with systems using fairly low-level control systems. Major home appliances (such as washing machines, driers, microwave ovens, etc.) usually contain embedded microcontrollers; the present invention can be particularly advantageous in such systems, since, with only a small increase in the cost of the embedded electronics, it may be possible to perform remote diagnosis on such systems. Similarly, such architectures can be adapted for diagnosis of consumer electronics systems, or even to retrieve billing information from pay-per-view cable systems (or utility-metering systems).
A further area of capability provided by the present invention is in redundant systems. The ability to perform low-level remote access means that, wherever the hardware system has included sufficient redundant elements and (electronically) switchable elements to bypass the failure, teleservicing can be used to select or deselect those elements. For example, a precision timing circuit can be retrimmed to compensate for drift in the crystal frequency; or, where a line interface chip has been blown by a voltage spike, that chip can be disconnected and another one connected; or power transistors, protection diodes, electrolytic capacitors, disk drives, memory banks, etc., can be similarly switched. The capability to test and reconfigure a remote system may be particularly advantageous where high reliability and maintainability are needed.
The capabilities of the disclosed system can be advantageous in a wide variety of systems. A few examples--which do not by any means exhaust the range of applications of the disclosed innovative concepts--include private branch exchanges (PBXs); vending machines (including machines which can accept credit cards for payment); automated machine tools and robotic systems, where the compatibility provided by the present inventions may permit a large step to be taken toward an integrated manufacturing environment, without users to install a comprehensive new computer network; process controllers, for a wide variety of continuous processes, including chemical plants, oilfield production sites, food-processing operations, and others; printing presses; information presentation systems; semiconductor manufacturing equipment (where systems according to the present invention are particularly advantageous in keeping humans out of the clean room).
Another class of applications uses a basic system, like that shown in FIG. 1, simply as an entry point to a more complex system. Thus, a configuration where the target microcontroller is connected to a further microprocessor (or other computer) can be used to provide low-level management functions (power-up, watchdog, kickstarter, clock, etc.) for a digital signal processor (DSP) system, or for a 32-bit microprocessor-based computer, or even for a minicomputer or mainframe. Alternatively, such a configuration can be used simply for system robustness; by permitting the nonvolatile target microprocessor to perform low-level tests on the more complex elements of the system (and, optionally, also permitting the nonvolatile microprocessor to control configuration switch settings), extensive teleservicing of even a complex system can become possible. A further alternative is to use the nonvolatile target microprocessor to monitor system activity, and to dial out and report hardware or software failures (or major events).
The presently preferred embodiment enables a telephone-programmable computer by providing a module which combines a DS5000T Time Microcontroller.TM. (which includes clock/calendar functions) with a 1200 bps or 2400 bps modem and another DS5000 microcontroller, and 32 Kbytes of nonvolatile SRAM (which can be used for program and/or data). A ribbon cable and connector is provided, so that this module can be connected to a standard DS5000/8051 socket on a circuit board.
The systems and subsystems provided by the present invention, and/or by alternative embodiments thereof, have at least the following advantages:
Teleservicing is possible, in new designs or existing systems; PA0 Complete application software changes can be made with only telephoneline access; PA0 capability to download and verify absolute object files (in Intel Hex); PA0 All DS5000T I/O facilities available to the user, and familiar modem functions can also be exploited. PA0 Requires no support circuit overhead on target system.